package com.samuel.learning.design.pattern.builder;

import com.google.common.collect.Lists;

import java.util.List;
import java.util.Random;

/**
 * @Author taozhaoyang
 * @Description 模板模式即 一个抽象类来实现共同的部分，多个实现类，实现每个实现类各自独自的东西
 *          特点是：每个实现类干的事情步骤都是一样的，eg中 一个 AbstractGoods干2件事： 1.排序，2.打印
 *          ConcreteGoods 是按照价格排序
 *          ConcreteGoods2 是按照 id 排序
 *          在抽象类，提取共同的方法，打印
 *
 * @Date 16:47 2018/7/27
 * @Param
 * @return
 **/
public class TemplateTest {


    public static void main(String[] args) {

        Random random = new Random();
        List<Goods> goodsList = Lists.newArrayList();
        for (int i = 0; i < 5; i++) {
            goodsList.add(new Goods(i, random.nextInt(100) * 1.00));
        }
        AbstractGoods goods = new ConcreteGoods();
        goods.excutor(goodsList);
        System.out.println("----------------------");
        AbstractGoods goods2 = new ConcreteGoods2();
        goods2.excutor(goodsList);

    }

}
